package com.example.siteservices.demos.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 控制器类，处理涉及路径变量的请求
 * @author <a href="mailto:chenxilzx1@gmail.com">theonefx</a>
 */
@Controller
public class PathVariableController {

    /**
     * 处理包含用户ID和角色ID的GET请求
     * 该方法演示如何使用路径变量来获取URL中的参数
     *
     * @param userId  用户ID，从请求URL中提取
     * @param roleId  角色ID，从请求URL中提取
     * @return 包含用户ID和角色ID的字符串响应
     */
    @RequestMapping(value = "/user/{userId}/roles/{roleId}", method = RequestMethod.GET)
    @ResponseBody
    public String getLogin(@PathVariable("userId") String userId, @PathVariable("roleId") String roleId) {
        return "User Id : " + userId + " Role Id : " + roleId;
    }

    /**
     * 处理包含正则表达式路径的GET请求
     * 该方法演示如何在请求映射中使用正则表达式来匹配特定模式的URL
     *
     * @param regexp1  正则表达式匹配到的字符串，从请求URL中提取
     * @return 包含匹配字符串的响应
     */
    @RequestMapping(value = "/javabeat/{regexp1:[a-z-]+}", method = RequestMethod.GET)
    @ResponseBody
    public String getRegExp(@PathVariable("regexp1") String regexp1) {
        return "URI Part : " + regexp1;
    }
}
